//package com.szboanda.platform.common.component.excel.service;
//
//import cn.hutool.core.util.NumberUtil;
//
//import com.szboanda.platform.common.component.excel.exception.ExcelException;
//import com.szboanda.platform.common.component.excel.utils.ExcelUtils;
//import com.szboanda.platform.common.utils.*;
//import com.szboanda.platform.common.utils.helper.JsonHelper;
//import com.szboanda.platform.common.utils.io.FileUtils;
//import com.szboanda.platform.rms.dept.service.IDeptService;
//import com.szboanda.platform.rms.user.mode.UserVO;
//import com.szboanda.platform.rms.user.service.IUserService;
//import com.szboanda.web.util.Tools;
//import org.apache.poi.hssf.usermodel.HSSFDateUtil;
//import org.apache.poi.poifs.filesystem.OfficeXmlFileException;
//import org.apache.poi.ss.usermodel.*;
//import org.apache.poi.ss.util.CellRangeAddress;
//import org.springframework.beans.factory.annotation.Autowired;
//
//import java.io.*;
//import java.util.*;
//
///**
// * @description: service有继承BaseBusinessService，就不能继承AImportExcelservice,
// * 重新该类由继承BaseService改为继承BaseBusinessService
// * @author: 袁云飞
// * @create: 2019-12-16 14:33
// **/
//
////public abstract class ABaseImportExcelService extends BaseBusinessService {
//
//    @Autowired
//    private IUserService userService;
//    @Autowired
//    private IDeptService deptService;
//
//
//    private Map<String, Object> param;
//
//    public ABaseImportExcelService() {
//    }
//
//    private List<Map<String, Object>> parseJsonFile(String jsonFileName) throws Exception {
//        if (StringUtils.isEmpty(jsonFileName)) {
//            throw new ExcelException("缺失参数jsonFilePath");
//        } else {
//            String webRootPath = Toolkit.getWebRootPath();
//            String jsonFilePath = webRootPath + "WEB-INF\\views\\templete\\excel\\" + jsonFileName;
//            Object jsonList = new ArrayList();
//
//            try {
//                File file = new File(jsonFilePath);
//                InputStream is = null;
//                if (file.exists()) {
//                    is = new FileInputStream(file);
//                } else {
//                    is = Toolkit.getFileStreamFromJar("/META-INF/resources/WEB-INF/views/templete/excel/" + jsonFileName);
//                    if (is == null) {
//                        LoggerUtil.error(ABaseImportExcelService.class, "JSON文件路径不正确");
//                        throw new ExcelException("JSON文件路径不正确");
//                    }
//                }
//
//                InputStreamReader reader = new InputStreamReader((InputStream)is, "UTF-8");
//
//                try {
//                    String json = FileUtils.copyToString(reader);
//
//                    try {
//                        Object object = JsonHelper.jsonString2Object(json, Object.class);
//                        if (object instanceof Map) {
//                            ((List)jsonList).add((Map)object);
//                        } else if (object instanceof List) {
//                            jsonList = (List)object;
//                        }
//
//                        return (List)jsonList;
//                    } catch (Exception var10) {
//                        LoggerUtil.error(ABaseImportExcelService.class, "JSON字符串转换成JSON对象异常", var10);
//                        throw new ExcelException("JSON字符串转换成JSON对象异常", var10);
//                    }
//                } catch (IOException var11) {
//                    LoggerUtil.error(ABaseImportExcelService.class, "JSON字符串转换成JSON对象异常", var11);
//                    throw new ExcelException("JSON字符串转换成JSON对象异常", var11);
//                }
//            } catch (FileNotFoundException var12) {
//                LoggerUtil.error(ABaseImportExcelService.class, "JSON文件路径不正确", var12);
//                throw new ExcelException("JSON文件路径不正确", var12);
//            } catch (UnsupportedEncodingException var13) {
//                LoggerUtil.error(ABaseImportExcelService.class, "字节流转换成字符流时编码异常", var13);
//                throw new ExcelException("字节流转换成字符流时编码异常", var13);
//            }
//        }
//    }
//
//    private Workbook parseExcel(InputStream excelInputStream, String excelName) throws Exception {
//        if (excelInputStream == null) {
//            Exception e = new ExcelException("缺失Excel导入文件");
//            LoggerUtil.error(ABaseImportExcelService.class, "缺失Excel导入文件", e);
//            throw e;
//        } else {
//            Workbook workbook = null;
//            if (!excelName.endsWith(".xls") && !excelName.endsWith(".xlsx")) {
//                Exception e = new ExcelException("只支持以xls或xlsx为后缀的Excel文件");
//                LoggerUtil.error(ABaseImportExcelService.class, "只支持以xls或xlsx为后缀的Excel文件", e);
//                throw e;
//            } else {
//                try {
//                    workbook = WorkbookFactory.create(excelInputStream);
//                    return workbook;
//                } catch (OfficeXmlFileException var5) {
//                    LoggerUtil.error(ABaseImportExcelService.class, "只支持Excel2003版本", var5);
//                    throw new ExcelException("只支持Excel2003版本", var5);
//                } catch (IOException var6) {
//                    LoggerUtil.error(ABaseImportExcelService.class, "创建HSSFWorkbook对象异常", var6);
//                    throw new ExcelException("创建HSSFWorkbook对象异常", var6);
//                }
//            }
//        }
//    }
//
//    private List<String> getSheetNameList(Workbook workbook, List<Map<String, Object>> jsonList) {
//        List<String> sheetNameList = new ArrayList();
//
//        for(int i = 0; i < jsonList.size(); ++i) {
//            sheetNameList.add(workbook.getSheetAt(i).getSheetName());
//        }
//
//        return sheetNameList;
//    }
//
//    private List<List<Map<String, Object>>> getExcelData(Workbook workbook, List<Map<String, Object>> jsonList) throws Exception {
//        List<List<Map<String, Object>>> result = new ArrayList();
//
//        for(int i = 0; i < jsonList.size(); ++i) {
//            Map<String, Object> jsonMap = (Map)jsonList.get(i);
//            Sheet sheet = workbook.getSheetAt(i);
//            List<Map<String, Object>> resultList = new ArrayList();
//            int startRow = (Integer)jsonMap.get("startRowIndex");
//            List<Map<String, Object>> columns = (List)jsonMap.get("columns");
//
//            for(int j = startRow; j <= sheet.getLastRowNum(); ++j) {
//                Row row = sheet.getRow(j);
//                if (row != null) {
//                    Map<String, Object> resultMap = new HashMap();
//
//                    String name;
//                    Object obj;
//                    for(Iterator var13 = columns.iterator(); var13.hasNext(); resultMap.put(name, obj)) {
//                        Map<String, Object> columnInfo = (Map)var13.next();
//                        int columnIndex = (Integer)columnInfo.get("columnIndex");
//                        name = (String)columnInfo.get("name");
//                        Cell cell = row.getCell(columnIndex);
//                        obj = this.getCellValue(sheet, cell, columnInfo);
//                        if (columnInfo.containsKey("comboBox")) {
//                            Map<String, Object> comboBoxMap = (Map)columnInfo.get("comboBox");
//                            obj = comboBoxMap.get(obj);
//                        }
//                    }
//
//                    resultMap.put("_index", j);
//                    resultList.add(resultMap);
//                }
//            }
//
//            result.add(resultList);
//        }
//
//        return result;
//    }
//
//    private Object getCellValue(Sheet sheet, Cell cell, Map<String, Object> columnInfo) throws Exception {
//        Object result = null;
//        if (cell != null) {
//            int sheetMergeCount = sheet.getNumMergedRegions();
//
//            for(int x = 0; x < sheetMergeCount; ++x) {
//                CellRangeAddress range = sheet.getMergedRegion(x);
//                int firstColumn = range.getFirstColumn();
//                int lastColumn = range.getLastColumn();
//                int firstRow = range.getFirstRow();
//                int lastRow = range.getLastRow();
//                int currentRow = cell.getRowIndex();
//                int currentColumn = cell.getColumnIndex();
//                if (currentRow >= firstRow && currentRow <= lastRow && currentColumn >= firstColumn && currentColumn <= lastColumn) {
//                    cell = sheet.getRow(firstRow).getCell(firstColumn);
//                    break;
//                }
//            }
//
//            CellType cellType = cell.getCellTypeEnum();
//            switch(cellType) {
//                case BLANK:
//                    result = cell.getStringCellValue();
//                    break;
//                case BOOLEAN:
//                    result = cell.getBooleanCellValue();
//                    break;
//                case NUMERIC:
//                    if (HSSFDateUtil.isCellDateFormatted(cell)) {
//                        String datePattern = (String)columnInfo.get("datePattern");
//                        String pattern = StringUtils.hasText(datePattern) ? datePattern : "yyyy-MM-dd HH:mm:ss";
//                        result = DateFormatUtils.format(cell.getDateCellValue(), pattern);
//                    } else {
//                        result = NumberUtils.parseNumberStrToString(NumberUtil.toStr(cell.getNumericCellValue()));
//                    }
//                    break;
//                case STRING:
//                    result = cell.getStringCellValue();
//                    break;
//                case FORMULA:
//                    CellType type = cell.getCachedFormulaResultTypeEnum();
//                    if (type == CellType.NUMERIC) {
//                        result = cell.getNumericCellValue();
//                    } else if (type == CellType.STRING) {
//                        result = cell.getStringCellValue();
//                    } else if (type == CellType.BOOLEAN) {
//                        result = cell.getBooleanCellValue();
//                    } else {
//                        result = cell.getErrorCellValue();
//                    }
//                    break;
//                default:
//                    result = cell.getErrorCellValue();
//            }
//        } else {
//            result = "";
//        }
//
//        return result;
//    }
//
//    public final Map<String, Object> process(InputStream excelInputStream, String jsonFileName, String excelName, Map<String, Object> params) {
//        Map<String, Object> result = new HashMap();
//        String customExceptionMsg = null;
//
//        List paramData;
//        try {
//            List<Map<String, Object>> jsonList = this.parseJsonFile(jsonFileName);
//            Workbook workbook = this.parseExcel(excelInputStream, excelName);
//            List<List<Map<String, Object>>> datas = this.getExcelData(workbook, jsonList);
//            if (ExcelUtils.isEmpty(datas)) {
//                result.put("resp_msg", "Excel文件缺失内容");
//                return result;
//            }
//
//            customExceptionMsg = this.afterAddExcelFile(jsonList, datas);
//            if (StringUtils.hasText(customExceptionMsg)) {
//                throw new ExcelException(customExceptionMsg);
//            }
//
//            this.setParam(params);
//            paramData = ExcelUtils.copyList(datas);
//            List<List<Map<String, Object>>> columnLists = new ArrayList();
//            Iterator var12 = jsonList.iterator();
//
//            while(var12.hasNext()) {
//                Map<String, Object> jsonMap = (Map)var12.next();
//                List<Map<String, Object>> columns = (List)jsonMap.get("columns");
//                columnLists.add(columns);
//            }
//
//            List<List<Map<String, Object>>> validateResults = this.validateData(paramData, columnLists);
//            if (ExcelUtils.isEmpty(validateResults)) {
//                this.handleData(datas, (List)columnLists);
//                result.put("resp_msg", "导入成功");
//            } else {
//                result.put("columnLists", columnLists);
//                result.put("inCorrectLists", validateResults);
//                result.put("sheetNameList", this.getSheetNameList(workbook, jsonList));
//                List<List<Map<String, Object>>> correctLists = new ArrayList();
//
//                for(int i = 0; i < datas.size(); ++i) {
//                    List<Map<String, Object>> data = (List)datas.get(i);
//                    List<Map<String, Object>> validateResult = (List)validateResults.get(i);
//                    ListIterator dataLit = data.listIterator();
//
//                    while(true) {
//                        while(dataLit.hasNext()) {
//                            Map<String, Object> dataMap = (Map)dataLit.next();
//                            Integer dataMapIndex = (Integer)dataMap.get("_index");
//                            Iterator var20 = validateResult.iterator();
//
//                            while(var20.hasNext()) {
//                                Map<String, Object> map = (Map)var20.next();
//                                Integer mapIndex = (Integer)map.get("_index");
//                                if (mapIndex != null && dataMapIndex != null && mapIndex.equals(dataMapIndex)) {
//                                    dataLit.remove();
//                                    break;
//                                }
//                            }
//                        }
//
//                        correctLists.add(data);
//                        break;
//                    }
//                }
//
//                result.put("correctLists", correctLists);
//                result.put("resp_msg", "导入失败");
//            }
//        } catch (Exception var23) {
//            String realExceptionMsg = var23.getMessage();
//            String exceptionMsg = "导入异常, 请联系管理员!";
//            if (StringUtils.hasText(customExceptionMsg)) {
//                exceptionMsg = customExceptionMsg;
//            } else {
//                paramData = Arrays.asList("缺失参数jsonFilePath", "JSON文件路径不正确", "读取JSON文件异常", "JSON字符串转换成JSON对象异常", "字节流转换成字符流时编码异常", "缺失Excel导入文件", "只支持以xls或xlsx为后缀的Excel文件", "只支持Excel2003版本", "创建HSSFWorkbook对象异常", "Excel文件缺失内容", "获取Excel文件输入流异常", "加载导入实现类异常", "导入异常, 请联系管理员!");
//                if (paramData.contains(realExceptionMsg)) {
//                    exceptionMsg = realExceptionMsg;
//                }
//            }
//
//            LoggerUtil.error(ABaseImportExcelService.class, realExceptionMsg, var23);
//            result.put("resp_msg", exceptionMsg);
//        }
//
//        return result;
//    }
//
//    public List<List<Map<String, Object>>> validateData(List<List<Map<String, Object>>> excelLists, List<List<Map<String, Object>>> columnLists) throws Exception {
//        List<List<Map<String, Object>>> configValidateLists = this.configValidate(excelLists, columnLists);
//        List<List<Map<String, Object>>> validateLists = new ArrayList();
//        List<List<Map<String, Object>>> copyExcelLists = ExcelUtils.copyList(excelLists);
//        if (columnLists.size() > 1) {
//            validateLists = this.validate4Sheets(copyExcelLists);
//        } else {
//            ((List)validateLists).add(this.validate((List)copyExcelLists.get(0)));
//        }
//
//        if (ExcelUtils.isEmpty(configValidateLists)) {
//            return (List)validateLists;
//        } else if (ExcelUtils.isEmpty((List)validateLists)) {
//            return configValidateLists;
//        } else {
//            List<List<Map<String, Object>>> result = new ArrayList();
//
//            for(int i = 0; i < configValidateLists.size(); ++i) {
//                List<Map<String, Object>> configValidateList = (List)configValidateLists.get(i);
//                List<Map<String, Object>> validateList = (List)((List)validateLists).get(i);
//                if (CollectionUtils.isEmpty(configValidateList)) {
//                    result.add(validateList);
//                } else if (CollectionUtils.isEmpty(validateList)) {
//                    result.add(configValidateList);
//                } else {
//                    Iterator var10 = configValidateList.iterator();
//
//                    while(true) {
//                        Map validateMap;
//                        int validateIndex;
//                        Iterator var14;
//                        Map configValidateMap;
//                        int configValidateIndex;
//                        while(var10.hasNext()) {
//                            validateMap = (Map)var10.next();
//                            Map<String, Object> configValidateError = (Map)validateMap.get("_error");
//                            validateIndex = (Integer)validateMap.get("_index");
//                            var14 = validateList.iterator();
//
//                            while(var14.hasNext()) {
//                                configValidateMap = (Map)var14.next();
//                                configValidateIndex = (Integer)configValidateMap.get("_index");
//                                if (validateIndex == configValidateIndex) {
//                                    Map<String, Object> validateError = (Map)configValidateMap.get("_error");
//                                   /* Iterator var18 = validateError.keySet().iterator();
//
//                                    while(var18.hasNext()) {
//                                        String key = (String)var18.next();
//                                        if (configValidateError.containsKey(key)) {
//                                            configValidateError.put(key, configValidateError.get(key) + "; " + validateError.get(key));
//                                        } else {
//                                            configValidateError.put(key, validateError.get(key));
//                                        }
//                                    }*/
//                                    for (Map.Entry<String, Object> entry : validateError.entrySet()) {
//                                        String key = entry.getKey();
//                                        if (configValidateError.containsKey(key)) {
//                                            configValidateError.put(key, configValidateError.get(key) + "; " + entry.getValue());
//                                        } else {
//                                            configValidateError.put(key, entry.getValue());
//                                        }
//                                    }
//                                    break;
//                                }
//                            }
//                        }
//
//                        var10 = validateList.iterator();
//
//                        while(var10.hasNext()) {
//                            validateMap = (Map)var10.next();
//                            boolean existFlag = false;
//                            validateIndex = (Integer)validateMap.get("_index");
//                            var14 = configValidateList.iterator();
//
//                            while(var14.hasNext()) {
//                                configValidateMap = (Map)var14.next();
//                                configValidateIndex = (Integer)configValidateMap.get("_index");
//                                if (validateIndex == configValidateIndex) {
//                                    existFlag = true;
//                                    break;
//                                }
//                            }
//
//                            if (!existFlag) {
//                                configValidateList.add(validateMap);
//                            }
//                        }
//
//                        Collections.sort(configValidateList, new Comparator<Map<String, Object>>() {
//                            @Override
//                            public int compare(Map<String, Object> map1, Map<String, Object> map2) {
//                                return MapUtils.getInt(map1, "_index") - MapUtils.getInt(map2, "_index");
//                            }
//                        });
//                        result.add(configValidateList);
//                        break;
//                    }
//                }
//            }
//
//            return result;
//        }
//    }
//
//    private List<List<Map<String, Object>>> configValidate(List<List<Map<String, Object>>> excelLists, List<List<Map<String, Object>>> columnLists) throws Exception {
//        List<List<Map<String, Object>>> configValidateLists = new ArrayList();
//        List<List<Map<String, Object>>> copyExcelLists = ExcelUtils.copyList(excelLists);
//
//        for(int i = 0; i < columnLists.size(); ++i) {
//            List<Map<String, Object>> copyExcelList = (List)copyExcelLists.get(i);
//            List<Map<String, Object>> columnList = (List)columnLists.get(i);
//            List<Map<String, Object>> ruleList = new ArrayList();
//            Iterator var9 = columnList.iterator();
//
//            Map map;
//            while(var9.hasNext()) {
//                Map<String, Object> column = (Map)var9.next();
//                map = (Map)column.get("rule");
//                if (!CollectionUtils.isEmpty(map)) {
//                    ruleList.add(column);
//                }
//            }
//
//            List<Map<String, Object>> result = new ArrayList();
//            Iterator var26 = copyExcelList.iterator();
//
//            while(var26.hasNext()) {
//                map = (Map)var26.next();
//                Map<String, Object> errorMap = new HashMap();
//                Iterator var13 = ruleList.iterator();
//
//                label153:
//                while(var13.hasNext()) {
//                    Map<String, Object> rule = (Map)var13.next();
//                    String name = (String)rule.get("name");
//                    String columnName = (String)rule.get("columnName");
//                    Map<String, Object> ruleMap = (Map)rule.get("rule");
//                    String mapValue = (String)map.get(name);
//                //    Iterator var19 = ruleMap.keySet().iterator();
//
//
//                    for(Map.Entry<String, Object> entity:ruleMap.entrySet()){
//                        String key = entity.getKey();
//                        Object ruleValue = entity.getValue();
//                        if ("required".equalsIgnoreCase(key) && (ruleValue instanceof Boolean && (Boolean)ruleValue || ruleValue instanceof String && "true".equalsIgnoreCase((String)ruleValue)) && !StringUtils.hasText(mapValue)) {
//                            this.putErrorMap(name, columnName + "必填", errorMap);
//                        } else {
//                            int count;
//                            if ("minLength".equalsIgnoreCase(key) && StringUtils.hasText(mapValue)) {
//                                count = 0;
//                                if (ruleValue instanceof Integer) {
//                                    count = (Integer)ruleValue;
//                                } else if (ruleValue instanceof String) {
//                                    count = Integer.parseInt((String)ruleValue);
//                                }
//
//                                if (mapValue.length() < count) {
//                                    this.putErrorMap(name, columnName + "长度不能少于" + count + "个字符", errorMap);
//                                }
//                            } else if ("maxLength".equalsIgnoreCase(key)) {
//                                count = 0;
//                                if (ruleValue instanceof Integer) {
//                                    count = (Integer)ruleValue;
//                                } else if (ruleValue instanceof String) {
//                                    count = Integer.parseInt((String)ruleValue);
//                                }
//
//                                if (mapValue.length() > count) {
//                                    this.putErrorMap(name, columnName + "长度不能超过" + count + "个字符", errorMap);
//                                }
//                            } else if ("type".equalsIgnoreCase(key) && "number".equalsIgnoreCase((String)ruleValue) && StringUtils.hasText(mapValue) && !NumberUtils.isNumber(mapValue)) {
//                                this.putErrorMap(name, columnName + "必须是数字", errorMap);
//                            } else if ("regular".equalsIgnoreCase(key) && StringUtils.hasText(mapValue) && !mapValue.matches((String)ruleValue)) {
//                                this.putErrorMap(name, columnName + "格式不正确", errorMap);
//                            } else {
//                                Map configMap;
//                                if ("unique".equalsIgnoreCase(key) && (ruleValue instanceof Boolean && (Boolean)ruleValue || ruleValue instanceof String && "true".equalsIgnoreCase((String)ruleValue)) && StringUtils.hasText(mapValue)) {
//                                    count = 0;
//                                    Iterator var28 = copyExcelList.iterator();
//
//                                    while(var28.hasNext()) {
//                                        configMap = (Map)var28.next();
//                                        if (mapValue.equals(configMap.get(name))) {
//                                            ++count;
//                                            if (count == 2) {
//                                                this.putErrorMap(name, columnName + "在导入数据中不唯一", errorMap);
//                                                break;
//                                            }
//                                        }
//                                    }
//                                } else if ("configRegular".equalsIgnoreCase(key) && StringUtils.hasText(mapValue)) {
//                                    String configKey = (String)ruleValue;
//                                    String configValue = Toolkit.getConfigValue(configKey);
//                                    configMap = JsonHelper.jsonString2Map(configValue);
//                                    if (!mapValue.matches((String)configMap.get("rule"))) {
//                                        this.putErrorMap(name, (String)configMap.get("tip"), errorMap);
//                                    }
//                                }
//                            }
//                        }
//
//                    }
//
//
//
//
///*
//
//                        while(true) {
//                            if (!var19.hasNext()) {
//                                continue label153;
//                            }
//
//                            String key = (String)var19.next();
//                            Object ruleValue = ruleMap.get(key);
//                            if ("required".equalsIgnoreCase(key) && (ruleValue instanceof Boolean && (Boolean)ruleValue || ruleValue instanceof String && "true".equalsIgnoreCase((String)ruleValue)) && !StringUtils.hasText(mapValue)) {
//                                this.putErrorMap(name, columnName + "必填", errorMap);
//                            } else {
//                                int count;
//                                if ("minLength".equalsIgnoreCase(key) && StringUtils.hasText(mapValue)) {
//                                    count = 0;
//                                    if (ruleValue instanceof Integer) {
//                                        count = (Integer)ruleValue;
//                                    } else if (ruleValue instanceof String) {
//                                        count = Integer.parseInt((String)ruleValue);
//                                    }
//
//                                    if (mapValue.length() < count) {
//                                        this.putErrorMap(name, columnName + "长度不能少于" + count + "个字符", errorMap);
//                                    }
//                                } else if ("maxLength".equalsIgnoreCase(key)) {
//                                    count = 0;
//                                    if (ruleValue instanceof Integer) {
//                                        count = (Integer)ruleValue;
//                                    } else if (ruleValue instanceof String) {
//                                        count = Integer.parseInt((String)ruleValue);
//                                    }
//
//                                    if (mapValue.length() > count) {
//                                        this.putErrorMap(name, columnName + "长度不能超过" + count + "个字符", errorMap);
//                                    }
//                                } else if ("type".equalsIgnoreCase(key) && "number".equalsIgnoreCase((String)ruleValue) && StringUtils.hasText(mapValue) && !NumberUtils.isNumber(mapValue)) {
//                                    this.putErrorMap(name, columnName + "必须是数字", errorMap);
//                                } else if ("regular".equalsIgnoreCase(key) && StringUtils.hasText(mapValue) && !mapValue.matches((String)ruleValue)) {
//                                    this.putErrorMap(name, columnName + "格式不正确", errorMap);
//                                } else {
//                                    Map configMap;
//                                    if ("unique".equalsIgnoreCase(key) && (ruleValue instanceof Boolean && (Boolean)ruleValue || ruleValue instanceof String && "true".equalsIgnoreCase((String)ruleValue)) && StringUtils.hasText(mapValue)) {
//                                        count = 0;
//                                        Iterator var28 = copyExcelList.iterator();
//
//                                        while(var28.hasNext()) {
//                                            configMap = (Map)var28.next();
//                                            if (mapValue.equals(configMap.get(name))) {
//                                                ++count;
//                                                if (count == 2) {
//                                                    this.putErrorMap(name, columnName + "在导入数据中不唯一", errorMap);
//                                                    break;
//                                                }
//                                            }
//                                        }
//                                    } else if ("configRegular".equalsIgnoreCase(key) && StringUtils.hasText(mapValue)) {
//                                        String configKey = (String)ruleValue;
//                                        String configValue = Toolkit.getConfigValue(configKey);
//                                        configMap = JsonHelper.jsonString2Map(configValue);
//                                        if (!mapValue.matches((String)configMap.get("rule"))) {
//                                            this.putErrorMap(name, (String)configMap.get("tip"), errorMap);
//                                        }
//                                    }
//                                }
//                            }
//                        }*/
//                }
//
//                if (!CollectionUtils.isEmpty(errorMap)) {
//                    map.put("_error", errorMap);
//                    result.add(map);
//                }
//            }
//
//            configValidateLists.add(result);
//        }
//
//        return configValidateLists;
//    }
//
//    public String afterAddExcelFile(List<Map<String, Object>> jsonList, List<List<Map<String, Object>>> datas) {
//        return null;
//    }
//
//    public void handleData(List<List<Map<String, Object>>> datas, List<List<Map<String, Object>>> columnLists) throws Exception {
//        if (columnLists.size() > 1) {
//            this.handleData4Sheets(datas, this.getCurrUser());
//        } else {
//            this.handleData((List)datas.get(0), this.getCurrUser());
//        }
//
//    }
//
//    public abstract void handleData(List<Map<String, Object>> var1, UserVO var2) throws Exception;
//
//    private void putErrorMap(String name, String value, Map<String, Object> errorMap) {
//        if (errorMap.containsKey(name)) {
//            errorMap.put(name, errorMap.get(name) + "; " + value);
//        } else {
//            errorMap.put(name, value);
//        }
//
//    }
//
//    public abstract List<Map<String, Object>> validate(List<Map<String, Object>> var1) throws Exception;
//
//    public abstract List<List<Map<String, Object>>> validate4Sheets(List<List<Map<String, Object>>> var1) throws Exception;
//
//    public abstract void handleData4Sheets(List<List<Map<String, Object>>> var1, UserVO var2) throws Exception;
//
//    public void setParam(Map<String, Object> param) {
//        this.param = param;
//    }
//
//    public Map<String, Object> getParam() {
//        return this.param;
//    }
//
//
//    /**
//     *
//     * @param
//     * @return java.lang.String
//     * @author 袁云飞
//     * @creed: 根据名称查询部门编号
//     * @date 2019/12/27 13:55
//     */
//    public String getDepartmentXHByName(String deptName){
//        //返回的部门编号
//        String bmbh = "";
//        if(!Tools.isNull(deptName)){
//            //根据部门名称查询部门编号
//            Map<String, Object> map = new HashMap<String, Object> ();
//            map.put("ZZJC",deptName);
//            List<Map<String, Object>>  deptList = deptService.findDept(map);
//            //如果查不到对应的部门编号，则置空
//            if(deptList!=null && !deptList.isEmpty()){
//                bmbh = (String) deptList.get(0).get("XH");
//            }
//        }
//        return bmbh;
//    }
//
//    /**
//     *
//     * @param
//     * @return java.lang.String
//     * @author 袁云飞
//     * @creed: 根据名称查询用户编号
//     * @date 2019/12/27 13:55
//     */
//    public String getUserIdByName(String userName){
//        //返回的部门编号
//        String userId = "";
//        if(!Tools.isNull(userName)){
//            //根据部门名称查询部门编号
//            Map<String, Object> map = new HashMap<String, Object> ();
//            map.put("YHMC",userName);
//            List<Map<String, Object>>  userList = userService.findUser(map);
//            //如果查不到对应的部门编号，则置空
//            if(userList!=null && !userList.isEmpty()){
//                userId = (String) userList.get(0).get("YHID");
//            }
//        }
//        return userId;
//    }
//
//
//    public void createBaseInfo(List<String> filedsList, List<Object> valuesList) {
//        Date currDate = new Date();
//        filedsList.add("CJSJ");
//        filedsList.add("XGSJ");
//        valuesList.add(currDate);
//        valuesList.add(currDate);
//        UserVO user = null;
//
//        try {
//            user = this.getCurrUser();
//        } catch (Exception var5) {
//            LoggerUtil.error(this.getClass(), "无法获取到当前用户信息");
//        }
//
//        if (null != user) {
//            filedsList.add("CJR");
//            filedsList.add("XGR");
//            valuesList.add(user.getYhid());
//            valuesList.add(user.getYhid());
//        } else {
//            filedsList.add("CJR");
//            filedsList.add("XGR");
//            valuesList.add("");
//            valuesList.add("");
//        }
//        filedsList.add("ORGID");
//        valuesList.add(Toolkit.getConfigValue("bd.sys.platform.config.systemConfig.base.orgid", "需要修改配置项"));
//
//    }
//}
